package spe.jbpm.common.notation;

import spe.model.common.Notification;
import spe.model.common.SPEAdapter;
import spe.model.common.SemanticElement;

public interface NotationElement extends SPEAdapter
{

	void setFactory(NotationElementFactory factory);
	NotationElementFactory getFactory();
	void setSemanticElement(SemanticElement semanticElement);
	SemanticElement getSemanticElement();
	
	void addPropertyChangeListener(SPEAdapter listener);
	void removePropertyChangeListener(SPEAdapter listener);
	void propertyChange(Notification evt);
	
	void register();
	void unregister();
	AbstractNotationElement getRegisteredNotationElementFor(SemanticElement semanticElement);
}
